{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from pandas.core.frame import DataFrame\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#港口坐标数据\n",
    "#港口坐标数据描述每个运单在船运的过程中涉及的港口位置信息。\n",
    "port=pd.read_csv('../event_port/port.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#gpsdf.shape\n",
    "#gpsdf.to_csv('gps_sample5kw.csv',index=False)\n",
    "gpsdf_raw=pd.read_csv('../clean_dataset/dataHasAllXY.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "finished.........\n"
     ]
    }
   ],
   "source": [
    "#对数据进行预处理\n",
    "def get_data(data, mode='train'):\n",
    "    \n",
    "    assert mode=='train' or mode=='test'\n",
    "    \n",
    "    if mode=='train':#船舶将要到达的下一个港口的预计时间,转码格式\n",
    "        pass\n",
    "    elif mode=='test':\n",
    "        data['temp_timestamp'] = data['timestamp']#当前时间\n",
    "        data['onboardDate'] = pd.to_datetime(data['onboardDate'], infer_datetime_format=True)#离开起运港时间\n",
    "    data['timestamp'] = pd.to_datetime(data['timestamp'], infer_datetime_format=True)\n",
    "    data['longitude'] = data['longitude'].astype(float)\n",
    "    data['loadingOrder'] = data['loadingOrder'].astype(str)\n",
    "    data['latitude'] = data['latitude'].astype(float)\n",
    "    data['speed'] = data['speed'].astype(float)\n",
    "    data['direction'] = data['direction'].astype(float)\n",
    "\n",
    "    return data\n",
    "gpsdf = get_data(gpsdf_raw, mode='train')\n",
    "print('finished.........')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "finished.........\n"
     ]
    }
   ],
   "source": [
    "grouped=gpsdf.groupby('loadingOrder')\n",
    "cnt_len=[]\n",
    "cut_name=[]\n",
    "for name,group in grouped:\n",
    "    if len(group)<50:\n",
    "        cut_name.append(name)\n",
    "gpsdf=gpsdf[~gpsdf['loadingOrder'].isin(cut_name)]\n",
    "gpsdf=gpsdf.reset_index(drop=True)\n",
    "print('finished.........')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "grouped=gpsdf.groupby('loadingOrder')\n",
    "cnt_turn=[]\n",
    "for name,group in grouped:\n",
    "    group=group.reset_index(drop=True)\n",
    "    trace=group['TRANSPORT_TRACE'].values[0]\n",
    "    trace=trace.split('-')\n",
    "    cnt_turn.append(len(trace)-2)\n",
    "    #print(trace)\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正在构造训练数据\n",
      "构造训练特征所花费时间256.947s\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "from geopy.distance import geodesic\n",
    "#\n",
    "def cut_zero_end(data):\n",
    "    for i in range(len(data)-1,0,-1):\n",
    "        if data[i]!=0:\n",
    "            break\n",
    "    return i+1\n",
    "def cut_zero_start(data):\n",
    "    for i in range(len(data)):\n",
    "        if data[i]!=0:\n",
    "            break\n",
    "    return i-1\n",
    "#\n",
    "def convert_name_xy(name):#输入港口名称\n",
    "    port_name=port[port['TRANS_NODE_NAME'].isin([name])].reset_index()\n",
    "    return port_name['LONGITUDE'][0],port_name['LATITUDE'][0]#返回港口经纬度\n",
    "def cal_turn_dis(portNames):\n",
    "    xx=[]\n",
    "    yy=[]\n",
    "    dis=0\n",
    "    lon_dis=0\n",
    "    lat_dis=0\n",
    "    dis_sqrt=0\n",
    "    for name in portNames:\n",
    "        xx.append(convert_name_xy(name)[0])\n",
    "        yy.append(convert_name_xy(name)[1])\n",
    "    for i in range(1,len(xx)):\n",
    "        dis+=geodesic((yy[i-1],xx[i-1]), (yy[i],xx[i])).km\n",
    "        lon_dis+=abs(xx[i]-xx[i-1])\n",
    "        lat_dis+=abs(yy[i]-yy[i-1])\n",
    "        dis_sqrt+=np.sqrt(abs(xx[i]-xx[i-1])**2+abs(yy[i]-yy[i-1])**2)\n",
    "    return dis,lon_dis,lat_dis,dis_sqrt\n",
    "    \n",
    "def get_train_feature(df):\n",
    "    #\n",
    "    portNames=df['TRANSPORT_TRACE'].values[0]\n",
    "    portNames=portNames.split('-')\n",
    "    dis,lon_dis,lat_dis,dis_sqrt=cal_turn_dis(portNames)\n",
    "    cnt_turn=len(portNames)-2\n",
    "    data=list(df['speed'])\n",
    "    cut_start=0\n",
    "    cut_end=len(df)\n",
    "    if data[0]==0:\n",
    "        cut_start=cut_zero_start(data)\n",
    "    if data[-1]==0:\n",
    "        cut_end=cut_zero_end(data)\n",
    "    df=df[cut_start:cut_end].reset_index(drop=True)\n",
    "    if len(df)<10:\n",
    "        return [0 for i in range(39)]\n",
    "    feature=[]\n",
    "    length=len(df)\n",
    "    sx=df['longitude'][0]\n",
    "    sy=df['latitude'][0]\n",
    "    ex=df['longitude'][length-1]\n",
    "    ey=df['latitude'][length-1]\n",
    "    \n",
    "    dis=geodesic((sy,sx), (ey,ex)).km\n",
    "    lon_dis=abs(ex-sx)\n",
    "    lat_dis=abs(ey-sy)\n",
    "    dis_sqrt=np.sqrt(lon_dis*lon_dis+lat_dis*lat_dis)\n",
    "     \n",
    "    label=(df['timestamp'][length-1]-df['timestamp'][0]).total_seconds()/3600\n",
    "    #下面开始截断\n",
    "    if length<200:\n",
    "        cut_ratio=0.5\n",
    "    else:\n",
    "        cut_ratio=random.choice([0.1,0.15,0.2,0.25,0.3])\n",
    "        #cut_ratio=random.choice([0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8])\n",
    "    df=df[:int(length*cut_ratio)]\n",
    "    \n",
    "    length=len(df)\n",
    "    dsx=df['longitude'][0]\n",
    "    dsy=df['latitude'][0]\n",
    "    dex=df['longitude'][length-1]\n",
    "    dey=df['latitude'][length-1]\n",
    "    cal_dis=geodesic((dsy,dsx), (dey,dex)).km#截取出来的一段距离\n",
    "    cut_label=(df['timestamp'][length-1]-df['timestamp'][0]).total_seconds()/3600\n",
    "    \n",
    "    cal_speed=cal_dis/(cut_label+0.1)\n",
    "    df['lat_diff']=df['latitude'].diff(1)\n",
    "    df['lon_diff']=df['longitude'].diff(1)\n",
    "    df['k']=df['lat_diff']/df['lon_diff']\n",
    "    #\n",
    "    df['speed_diff'] = df['speed'].diff(1)#速度变化量\n",
    "    df['diff_minutes'] =df['timestamp'].diff(1).dt.total_seconds() / 60#记录之间的间隔时间(单位:s)\n",
    "    #\n",
    "    k_1_4=df['k'].quantile(0.25)\n",
    "    k_median=df['k'].quantile(0.5)\n",
    "    k_3_4=df['k'].quantile(0.75)\n",
    "    #在所有的记录中，多少记录是停船状态\n",
    "    #df['anchor'] = ((df['lat_diff'] <= 0.03) & (df['lon_diff'] <= 0.03)& (df['speed_diff'] <= 0.3) & (df['diff_minutes'] <= 10)).astype(int)\n",
    "    df['anchor'] = ((df['lat_diff'].abs() <= 0.03) & (df['lon_diff'].abs() <= 0.03)& (df['speed_diff'] <= 0.3) & (df['diff_minutes'] >= 10)).astype(int)\n",
    "\n",
    "    anchor_cnt = df['anchor'].sum()\n",
    "    anchor_ratio = anchor_cnt / len(df)\n",
    "    #\n",
    "    lat_1_4=df['latitude'].quantile(0.25)\n",
    "    lat_3_4=df['latitude'].quantile(0.75)\n",
    "    lat_min=df['latitude'].min()\n",
    "    lat_max=df['latitude'].max()\n",
    "    lat_mean=df['latitude'].mean()\n",
    "    lat_median=df['latitude'].median()\n",
    "    #\n",
    "    lon_1_4=df['longitude'].quantile(0.25)\n",
    "    lon_3_4=df['longitude'].quantile(0.75)\n",
    "    longitude_1_4=df['longitude'].quantile(0.25)\n",
    "    longitude_3_4=df['longitude'].quantile(0.75)\n",
    "    lon_min=df['longitude'].min()\n",
    "    lon_max=df['longitude'].max()\n",
    "    lon_mean=df['longitude'].mean()\n",
    "    lon_median=df['longitude'].median()\n",
    "    #\n",
    "    speed_1_4=df['speed'].quantile(0.25)\n",
    "    speed_3_4=df['speed'].quantile(0.75)\n",
    "    speed_max=df['speed'].max()\n",
    "    speed_mean=df['speed'].mean()\n",
    "    speed_median=df['speed'].median()\n",
    "    #\n",
    "    direction_1_4=df['direction'].quantile(0.25)\n",
    "    direction_3_4=df['direction'].quantile(0.75)\n",
    "    direction_min=df['direction'].min()\n",
    "    direction_max=df['direction'].max()\n",
    "    direction_mean=df['direction'].mean()\n",
    "    direction_median=df['direction'].median()\n",
    "    #\n",
    "    feature.append(k_1_4)\n",
    "    feature.append(k_3_4)\n",
    "    feature.append(k_median)\n",
    "    feature.append(anchor_cnt)\n",
    "    feature.append(anchor_ratio)\n",
    "    #\n",
    "    feature.append(lat_1_4)\n",
    "    feature.append(lat_3_4)\n",
    "    feature.append(lat_max)\n",
    "    feature.append(lat_min)\n",
    "    feature.append(lat_median)\n",
    "    feature.append(lat_mean)\n",
    "    #\n",
    "    feature.append(lon_1_4)\n",
    "    feature.append(lon_3_4)\n",
    "    feature.append(lon_max)\n",
    "    feature.append(lon_min)\n",
    "    feature.append(lon_median)\n",
    "    feature.append(lon_mean)\n",
    "    #\n",
    "    feature.append(speed_1_4)\n",
    "    feature.append(speed_3_4)\n",
    "    feature.append(speed_max)\n",
    "    feature.append(speed_median)\n",
    "    feature.append(speed_mean)\n",
    "    #\n",
    "    feature.append(direction_1_4)\n",
    "    feature.append(direction_3_4)\n",
    "    feature.append(direction_max)\n",
    "    feature.append(direction_min)\n",
    "    feature.append(direction_median)\n",
    "    feature.append(direction_mean)\n",
    "    #\n",
    "    feature.append(sx)\n",
    "    feature.append(sy)\n",
    "    feature.append(ex)\n",
    "    feature.append(ey)\n",
    "    feature.append(dis)\n",
    "    feature.append(lon_dis)\n",
    "    feature.append(lat_dis)\n",
    "    feature.append(cal_speed)\n",
    "    feature.append(dis_sqrt)\n",
    "    feature.append(cnt_turn)\n",
    "    feature.append(label)\n",
    "\n",
    "    return feature\n",
    "#\n",
    "import random\n",
    "from geopy.distance import geodesic\n",
    "import time\n",
    "def make_train_data(df):\n",
    "    features=[]\n",
    "    grouped=df.groupby('loadingOrder')\n",
    "    #\n",
    "    start_time=time.time()\n",
    "    print('正在构造训练数据')\n",
    "    start_time=time.time()\n",
    "    for name,group in grouped:\n",
    "        #sample_trace=df.loc[group.index[bottom:top+1]].reset_index(drop=True)#这里的sample_trace是截取出的一段轨迹(一个训练样本)\n",
    "        sample_trace=group.reset_index(drop=True)\n",
    "        features.append(get_train_feature(sample_trace))\n",
    "    print(\"构造训练特征所花费时间%.3fs\"%(time.time()-start_time))\n",
    "    return features\n",
    "#\n",
    "train_features=make_train_data(gpsdf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察训练数据标签的分布\n",
    "- 最长时间:86.28858796296296 day\n",
    "- 最短时间:0.0 day\n",
    "- 平均时间:16.70094809971483 day\n",
    "\n",
    "## 而测试数据中已知的轨迹长度为：\n",
    "- 最长时间:16.88171296296296 day\n",
    "- 最短时间:0.046527777777777786 day\n",
    "- 平均时间:4.325498415081749 day\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "#\n",
    "test_data_path='../R2 ATest 0711.csv'\n",
    "df_test=pd.read_csv(test_data_path)\n",
    "df_test=get_data(df_test, mode='test')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "33.34361353710392"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "geodesic((22,114), (28.6,149.4)).km-3592.044777704557"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#df_test[df_test['loadingOrder'].isin(['DH829189593918'])]#1-12日出发，1-16开始截取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9.538922954635794"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "geodesic((1.303141,103.70462), (1.261138,103.779485)).km\n",
    "#geodesic((3.496902,105.483728), (1.303141,103.70462)).km"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loadingOrder</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>longitude</th>\n",
       "      <th>latitude</th>\n",
       "      <th>speed</th>\n",
       "      <th>direction</th>\n",
       "      <th>carrierName</th>\n",
       "      <th>vesselMMSI</th>\n",
       "      <th>onboardDate</th>\n",
       "      <th>TRANSPORT_TRACE</th>\n",
       "      <th>temp_timestamp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>27395</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-16 23:36:18+00:00</td>\n",
       "      <td>103.779485</td>\n",
       "      <td>1.261138</td>\n",
       "      <td>0.0</td>\n",
       "      <td>21160.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-16T23:36:18.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27396</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-16 23:42:38+00:00</td>\n",
       "      <td>103.779485</td>\n",
       "      <td>1.261138</td>\n",
       "      <td>0.0</td>\n",
       "      <td>21150.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-16T23:42:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27397</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-16 23:49:48+00:00</td>\n",
       "      <td>103.779488</td>\n",
       "      <td>1.261138</td>\n",
       "      <td>0.0</td>\n",
       "      <td>21150.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-16T23:49:48.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27398</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-16 23:59:08+00:00</td>\n",
       "      <td>103.778478</td>\n",
       "      <td>1.261198</td>\n",
       "      <td>2.0</td>\n",
       "      <td>22360.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-16T23:59:08.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27401</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 00:17:48+00:00</td>\n",
       "      <td>103.783758</td>\n",
       "      <td>1.232637</td>\n",
       "      <td>16.0</td>\n",
       "      <td>15080.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T00:17:48.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27410</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 03:25:38+00:00</td>\n",
       "      <td>103.136185</td>\n",
       "      <td>1.442682</td>\n",
       "      <td>32.0</td>\n",
       "      <td>30760.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T03:25:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27411</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 05:04:08+00:00</td>\n",
       "      <td>102.753570</td>\n",
       "      <td>1.700665</td>\n",
       "      <td>30.0</td>\n",
       "      <td>29800.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T05:04:08.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27412</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 05:38:38+00:00</td>\n",
       "      <td>102.614758</td>\n",
       "      <td>1.770898</td>\n",
       "      <td>29.0</td>\n",
       "      <td>29800.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T05:38:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27413</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 05:56:18+00:00</td>\n",
       "      <td>102.543375</td>\n",
       "      <td>1.807388</td>\n",
       "      <td>29.0</td>\n",
       "      <td>29600.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T05:56:18.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27414</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 06:24:28+00:00</td>\n",
       "      <td>102.430405</td>\n",
       "      <td>1.862358</td>\n",
       "      <td>30.0</td>\n",
       "      <td>29600.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T06:24:28.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27417</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 06:44:38+00:00</td>\n",
       "      <td>102.348065</td>\n",
       "      <td>1.901265</td>\n",
       "      <td>30.0</td>\n",
       "      <td>29400.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T06:44:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27422</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 08:18:08+00:00</td>\n",
       "      <td>101.995300</td>\n",
       "      <td>2.167970</td>\n",
       "      <td>32.0</td>\n",
       "      <td>31150.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T08:18:08.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27427</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 12:08:38+00:00</td>\n",
       "      <td>101.038288</td>\n",
       "      <td>2.809772</td>\n",
       "      <td>31.0</td>\n",
       "      <td>29150.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T12:08:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27428</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 12:16:08+00:00</td>\n",
       "      <td>101.005615</td>\n",
       "      <td>2.824528</td>\n",
       "      <td>31.0</td>\n",
       "      <td>29840.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T12:16:08.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27429</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 12:21:38+00:00</td>\n",
       "      <td>100.984600</td>\n",
       "      <td>2.840095</td>\n",
       "      <td>31.0</td>\n",
       "      <td>31430.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T12:21:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27434</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 12:37:38+00:00</td>\n",
       "      <td>100.934077</td>\n",
       "      <td>2.893703</td>\n",
       "      <td>29.0</td>\n",
       "      <td>31720.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T12:37:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27443</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 13:38:38+00:00</td>\n",
       "      <td>100.721648</td>\n",
       "      <td>3.086357</td>\n",
       "      <td>32.0</td>\n",
       "      <td>31090.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T13:38:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27458</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 17:22:48+00:00</td>\n",
       "      <td>99.918133</td>\n",
       "      <td>3.808417</td>\n",
       "      <td>32.0</td>\n",
       "      <td>31200.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T17:22:48.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27461</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 20:08:48+00:00</td>\n",
       "      <td>99.272348</td>\n",
       "      <td>4.270755</td>\n",
       "      <td>30.0</td>\n",
       "      <td>30800.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T20:08:48.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27462</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 21:43:58+00:00</td>\n",
       "      <td>98.917535</td>\n",
       "      <td>4.524008</td>\n",
       "      <td>30.0</td>\n",
       "      <td>30800.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T21:43:58.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27463</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-17 22:24:38+00:00</td>\n",
       "      <td>98.770768</td>\n",
       "      <td>4.636508</td>\n",
       "      <td>30.0</td>\n",
       "      <td>30800.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-17T22:24:38.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27532</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-18 01:32:08+00:00</td>\n",
       "      <td>98.080998</td>\n",
       "      <td>5.168605</td>\n",
       "      <td>32.0</td>\n",
       "      <td>30800.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-18T01:32:08.000Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27569</th>\n",
       "      <td>DH829189593918</td>\n",
       "      <td>2020-01-18 04:17:38+00:00</td>\n",
       "      <td>97.391428</td>\n",
       "      <td>5.578667</td>\n",
       "      <td>33.0</td>\n",
       "      <td>27900.0</td>\n",
       "      <td>OYSCFP</td>\n",
       "      <td>D1064481645</td>\n",
       "      <td>2020-01-12 13:54:58</td>\n",
       "      <td>CNSHK-SGSIN</td>\n",
       "      <td>2020-01-18T04:17:38.000Z</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         loadingOrder                 timestamp   longitude  latitude  speed  \\\n",
       "27395  DH829189593918 2020-01-16 23:36:18+00:00  103.779485  1.261138    0.0   \n",
       "27396  DH829189593918 2020-01-16 23:42:38+00:00  103.779485  1.261138    0.0   \n",
       "27397  DH829189593918 2020-01-16 23:49:48+00:00  103.779488  1.261138    0.0   \n",
       "27398  DH829189593918 2020-01-16 23:59:08+00:00  103.778478  1.261198    2.0   \n",
       "27401  DH829189593918 2020-01-17 00:17:48+00:00  103.783758  1.232637   16.0   \n",
       "27410  DH829189593918 2020-01-17 03:25:38+00:00  103.136185  1.442682   32.0   \n",
       "27411  DH829189593918 2020-01-17 05:04:08+00:00  102.753570  1.700665   30.0   \n",
       "27412  DH829189593918 2020-01-17 05:38:38+00:00  102.614758  1.770898   29.0   \n",
       "27413  DH829189593918 2020-01-17 05:56:18+00:00  102.543375  1.807388   29.0   \n",
       "27414  DH829189593918 2020-01-17 06:24:28+00:00  102.430405  1.862358   30.0   \n",
       "27417  DH829189593918 2020-01-17 06:44:38+00:00  102.348065  1.901265   30.0   \n",
       "27422  DH829189593918 2020-01-17 08:18:08+00:00  101.995300  2.167970   32.0   \n",
       "27427  DH829189593918 2020-01-17 12:08:38+00:00  101.038288  2.809772   31.0   \n",
       "27428  DH829189593918 2020-01-17 12:16:08+00:00  101.005615  2.824528   31.0   \n",
       "27429  DH829189593918 2020-01-17 12:21:38+00:00  100.984600  2.840095   31.0   \n",
       "27434  DH829189593918 2020-01-17 12:37:38+00:00  100.934077  2.893703   29.0   \n",
       "27443  DH829189593918 2020-01-17 13:38:38+00:00  100.721648  3.086357   32.0   \n",
       "27458  DH829189593918 2020-01-17 17:22:48+00:00   99.918133  3.808417   32.0   \n",
       "27461  DH829189593918 2020-01-17 20:08:48+00:00   99.272348  4.270755   30.0   \n",
       "27462  DH829189593918 2020-01-17 21:43:58+00:00   98.917535  4.524008   30.0   \n",
       "27463  DH829189593918 2020-01-17 22:24:38+00:00   98.770768  4.636508   30.0   \n",
       "27532  DH829189593918 2020-01-18 01:32:08+00:00   98.080998  5.168605   32.0   \n",
       "27569  DH829189593918 2020-01-18 04:17:38+00:00   97.391428  5.578667   33.0   \n",
       "\n",
       "       direction carrierName   vesselMMSI         onboardDate TRANSPORT_TRACE  \\\n",
       "27395    21160.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27396    21150.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27397    21150.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27398    22360.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27401    15080.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27410    30760.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27411    29800.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27412    29800.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27413    29600.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27414    29600.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27417    29400.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27422    31150.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27427    29150.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27428    29840.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27429    31430.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27434    31720.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27443    31090.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27458    31200.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27461    30800.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27462    30800.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27463    30800.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27532    30800.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "27569    27900.0      OYSCFP  D1064481645 2020-01-12 13:54:58     CNSHK-SGSIN   \n",
       "\n",
       "                 temp_timestamp  \n",
       "27395  2020-01-16T23:36:18.000Z  \n",
       "27396  2020-01-16T23:42:38.000Z  \n",
       "27397  2020-01-16T23:49:48.000Z  \n",
       "27398  2020-01-16T23:59:08.000Z  \n",
       "27401  2020-01-17T00:17:48.000Z  \n",
       "27410  2020-01-17T03:25:38.000Z  \n",
       "27411  2020-01-17T05:04:08.000Z  \n",
       "27412  2020-01-17T05:38:38.000Z  \n",
       "27413  2020-01-17T05:56:18.000Z  \n",
       "27414  2020-01-17T06:24:28.000Z  \n",
       "27417  2020-01-17T06:44:38.000Z  \n",
       "27422  2020-01-17T08:18:08.000Z  \n",
       "27427  2020-01-17T12:08:38.000Z  \n",
       "27428  2020-01-17T12:16:08.000Z  \n",
       "27429  2020-01-17T12:21:38.000Z  \n",
       "27434  2020-01-17T12:37:38.000Z  \n",
       "27443  2020-01-17T13:38:38.000Z  \n",
       "27458  2020-01-17T17:22:48.000Z  \n",
       "27461  2020-01-17T20:08:48.000Z  \n",
       "27462  2020-01-17T21:43:58.000Z  \n",
       "27463  2020-01-17T22:24:38.000Z  \n",
       "27532  2020-01-18T01:32:08.000Z  \n",
       "27569  2020-01-18T04:17:38.000Z  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_test[df_test['loadingOrder'].isin(['DH829189593918'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DH829189593918 105.0\n",
      "24 105.0\n",
      "HQ193237808500 1.0\n",
      "JB123387157454 3.0\n",
      "LE381377964668 68.0\n",
      "87 68.0\n",
      "NH240192470616 3.0\n",
      "QK696918637480 8.0\n",
      "SZ109188860665 1.0\n",
      "TB846768731403 4.0\n",
      "ZO975754571124 3.0\n",
      "ZX552539758501 1.0\n"
     ]
    }
   ],
   "source": [
    "#判断onboard_time和第一条记录的时间是否相等\n",
    "#总共10个运单的onboard/第一条时间差距大于一个小时，大于一天的有两个运单\n",
    "#'DH829189593918':105h;'LE381377964668':68.0\n",
    "grouped=df_test.groupby('loadingOrder')\n",
    "cnt=0\n",
    "for name,group in grouped:\n",
    "    group=group.reset_index(drop=True)\n",
    "    dft=pd.to_datetime(group['timestamp'] ).apply(lambda x: x.replace(tzinfo=None))\n",
    "    delta=(dft[:1][0]-group['onboardDate'][:1][0]).total_seconds()//3600\n",
    "    if delta!=0:\n",
    "        print(name,delta)#总共10个运单的onboard和第一条时间戳不一致\n",
    "    if name=='DH829189593918' or name=='LE381377964668':\n",
    "        print(cnt,delta)\n",
    "    cnt+=1\n",
    "#这里面的10个不一致的订单是需要最好减掉的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"\\nlen_list=[]\\ndelta=[]\\ngrouped=df_test.groupby('loadingOrder')\\nfor name,group in grouped:\\n    len_list.append(len(group))\\n    group=group.reset_index(drop=True)\\n    tmp=group['timestamp'].values\\n    delta.append(pd.Timedelta((tmp[-1]-tmp[1])).total_seconds()/3600/24)\\n    if len(group)<10:\\n        print(name)\\n\\nprint(np.min(len_list),np.mean(len_list),np.max(len_list))\\n    \\nprint(np.min(delta),np.mean(delta),np.max(delta))\\n\""
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "'''\n",
    "len_list=[]\n",
    "delta=[]\n",
    "grouped=df_test.groupby('loadingOrder')\n",
    "for name,group in grouped:\n",
    "    len_list.append(len(group))\n",
    "    group=group.reset_index(drop=True)\n",
    "    tmp=group['timestamp'].values\n",
    "    delta.append(pd.Timedelta((tmp[-1]-tmp[1])).total_seconds()/3600/24)\n",
    "    if len(group)<10:\n",
    "        print(name)\n",
    "\n",
    "print(np.min(len_list),np.mean(len_list),np.max(len_list))\n",
    "    \n",
    "print(np.min(delta),np.mean(delta),np.max(delta))\n",
    "'''\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "#sorted(len_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 测试数据:共94对(31对中间港口，最多中间港有14个)港口，219条运单，其中很多含有中间港口"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def convert_name_xy(name):#输入港口名称\n",
    "    port_name=port[port['TRANS_NODE_NAME'].isin([name])].reset_index()\n",
    "    return port_name['LONGITUDE'][0],port_name['LATITUDE'][0]#返回港口经纬度\n",
    "#  \n",
    "start_x=[]#起点\n",
    "start_y=[]#起点\n",
    "end_x=[]#终点\n",
    "end_y=[]#终点\n",
    "#存储中间结果,避免重复计算\n",
    "temp_dic={}\n",
    "for value in df_test['TRANSPORT_TRACE']:\n",
    "    s_e=value.split('-')\n",
    "    start_port=s_e[0]\n",
    "    end_port=s_e[-1]\n",
    "    if start_port in temp_dic:\n",
    "        re=temp_dic[start_port]\n",
    "    else:\n",
    "        re=convert_name_xy(start_port)\n",
    "        temp_dic[start_port]=re\n",
    "    start_x.append(re[0])\n",
    "    start_y.append(re[1])\n",
    "    if end_port in temp_dic:\n",
    "        re=temp_dic[end_port]\n",
    "    else:\n",
    "        re=convert_name_xy(end_port)\n",
    "        temp_dic[end_port]=re\n",
    "    end_x.append(re[0])\n",
    "    end_y.append(re[1])\n",
    "df_test['start_x']=start_x\n",
    "df_test['start_y']=start_y\n",
    "df_test['end_x']=end_x\n",
    "df_test['end_y']=end_y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "finished1...\n",
      "正在构造测试数据........\n",
      "构造测试数据所花费时间4.187s\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "from geopy.distance import geodesic\n",
    "#\n",
    "def cal_turn_dis(portNames):\n",
    "    xx=[]\n",
    "    yy=[]\n",
    "    dis=0\n",
    "    lon_dis=0\n",
    "    lat_dis=0\n",
    "    dis_sqrt=0\n",
    "    for name in portNames:\n",
    "        xx.append(convert_name_xy(name)[0])\n",
    "        yy.append(convert_name_xy(name)[1])\n",
    "    for i in range(1,len(xx)):\n",
    "        dis+=geodesic((yy[i-1],xx[i-1]), (yy[i],xx[i])).km\n",
    "        lon_dis+=abs(xx[i]-xx[i-1])\n",
    "        lat_dis+=abs(yy[i]-yy[i-1])\n",
    "        dis_sqrt+=np.sqrt(abs(xx[i]-xx[i-1])**2+abs(yy[i]-yy[i-1])**2)\n",
    "    return dis,lon_dis,lat_dis,dis_sqrt\n",
    "def get_test_feature(df,name):\n",
    "    portNames=df['TRANSPORT_TRACE'].values[0]\n",
    "    portNames=portNames.split('-')\n",
    "    dis,lon_dis,lat_dis,dis_sqrt=cal_turn_dis(portNames)\n",
    "    cnt_turn=len(portNames)-2\n",
    "    df.sort_values(['timestamp'], inplace=True)\n",
    "    df=df.reset_index(drop=True)\n",
    "    feature=[]\n",
    "    length=len(df)\n",
    "    dsx=df['longitude'][0]\n",
    "    dsy=df['latitude'][0]\n",
    "    dex=df['longitude'][length-1]\n",
    "    dey=df['latitude'][length-1]\n",
    "    #\n",
    "    sx=df['longitude'][0]#df['start_x'][0]\n",
    "    sy=df['latitude'][0]#df['start_y'][0]\n",
    "    ex=df['end_x'][length-1]\n",
    "    ey=df['end_y'][length-1]\n",
    "    \n",
    "    dis=geodesic((sy,sx), (ey,ex)).km\n",
    "    lon_dis=abs(ex-sx)\n",
    "    lat_dis=abs(ey-sy)\n",
    "    dis_sqrt=np.sqrt(lon_dis*lon_dis+lat_dis*lat_dis)\n",
    "    \n",
    "    label=(df['timestamp'][length-1]-df['timestamp'][0]).total_seconds()/3600\n",
    "    cal_dis=geodesic((dsy,dsx), (dey,dex)).km\n",
    "    cal_speed=cal_dis/(label+0.1)\n",
    "    df['lat_diff']=df['latitude'].diff(1)\n",
    "    df['lon_diff']=df['longitude'].diff(1)\n",
    "    df['k']=df['lat_diff']/df['lon_diff']\n",
    "    #\n",
    "    df['speed_diff'] = df['speed'].diff(1)#速度变化量\n",
    "    df['diff_minutes'] =df['timestamp'].diff(1).dt.total_seconds() / 60#记录之间的间隔时间(单位:s)\n",
    "    #\n",
    "    k_1_4=df['k'].quantile(0.25)\n",
    "    k_median=df['k'].quantile(0.5)\n",
    "    k_3_4=df['k'].quantile(0.75)\n",
    "    #在所有的记录中，多少记录是停船状态\n",
    "    df['anchor'] = ((df['lat_diff'].abs() <= 0.03) & (df['lon_diff'].abs() <= 0.03)& (df['speed_diff'] <= 0.3) & (df['diff_minutes'] >= 15)).astype(int)\n",
    "\n",
    "    anchor_cnt = df['anchor'].sum()\n",
    "    anchor_ratio = anchor_cnt / len(df)\n",
    "    #\n",
    "    lat_1_4=df['latitude'].quantile(0.25)\n",
    "    lat_3_4=df['latitude'].quantile(0.75)\n",
    "    lat_min=df['latitude'].min()\n",
    "    lat_max=df['latitude'].max()\n",
    "    lat_mean=df['latitude'].mean()\n",
    "    lat_median=df['latitude'].median()\n",
    "    #\n",
    "    lon_1_4=df['longitude'].quantile(0.25)\n",
    "    lon_3_4=df['longitude'].quantile(0.75)\n",
    "    longitude_1_4=df['longitude'].quantile(0.25)\n",
    "    longitude_3_4=df['longitude'].quantile(0.75)\n",
    "    lon_min=df['longitude'].min()\n",
    "    lon_max=df['longitude'].max()\n",
    "    lon_mean=df['longitude'].mean()\n",
    "    lon_median=df['longitude'].median()\n",
    "    #\n",
    "    speed_1_4=df['speed'].quantile(0.25)\n",
    "    speed_3_4=df['speed'].quantile(0.75)\n",
    "    speed_min=df['speed'].min()\n",
    "    speed_max=df['speed'].max()\n",
    "    speed_mean=df['speed'].mean()\n",
    "    speed_median=df['speed'].median()\n",
    "    #\n",
    "    direction_1_4=df['direction'].quantile(0.25)\n",
    "    direction_3_4=df['direction'].quantile(0.75)\n",
    "    direction_min=df['direction'].min()\n",
    "    direction_max=df['direction'].max()\n",
    "    direction_mean=df['direction'].mean()\n",
    "    direction_median=df['direction'].median()\n",
    "    #\n",
    "    feature.append(name)\n",
    "    feature.append(k_1_4)\n",
    "    feature.append(k_3_4)\n",
    "    feature.append(k_median)\n",
    "    feature.append(anchor_cnt)\n",
    "    feature.append(anchor_ratio)\n",
    "    #\n",
    "    feature.append(lat_1_4)\n",
    "    feature.append(lat_3_4)\n",
    "    feature.append(lat_max)\n",
    "    feature.append(lat_min)\n",
    "    feature.append(lat_median)\n",
    "    feature.append(lat_mean)\n",
    "    #\n",
    "    feature.append(lon_1_4)\n",
    "    feature.append(lon_3_4)\n",
    "    feature.append(lon_max)\n",
    "    feature.append(lon_min)\n",
    "    feature.append(lon_median)\n",
    "    feature.append(lon_mean)\n",
    "    #\n",
    "    feature.append(speed_1_4)\n",
    "    feature.append(speed_3_4)\n",
    "    feature.append(speed_max)\n",
    "    feature.append(speed_median)\n",
    "    feature.append(speed_mean)\n",
    "    #\n",
    "    feature.append(direction_1_4)\n",
    "    feature.append(direction_3_4)\n",
    "    feature.append(direction_max)\n",
    "    feature.append(direction_min)\n",
    "    feature.append(direction_median)\n",
    "    feature.append(direction_mean)\n",
    "    #\n",
    "    feature.append(sx)\n",
    "    feature.append(sy)\n",
    "    feature.append(ex)\n",
    "    feature.append(ey)\n",
    "    feature.append(dis)\n",
    "    feature.append(lon_dis)\n",
    "    feature.append(lat_dis)\n",
    "    feature.append(cal_speed)\n",
    "    feature.append(dis_sqrt)\n",
    "    feature.append(cnt_turn)\n",
    "    feature.append(label)\n",
    "    \n",
    "    return feature\n",
    "#\n",
    "import random\n",
    "from geopy.distance import geodesic\n",
    "import time\n",
    "def make_test_data(df):\n",
    "    features=[]\n",
    "    grouped=df.groupby('loadingOrder')\n",
    "    print('finished1...')\n",
    "    #\n",
    "    start_time=time.time()\n",
    "    print('正在构造测试数据........')\n",
    "    start_time=time.time()\n",
    "    for name,group in grouped:\n",
    "        #\n",
    "        sample_trace=group.reset_index(drop=True)\n",
    "        features.append(get_test_feature(sample_trace,name))\n",
    "    print(\"构造测试数据所花费时间%.3fs\"%(time.time()-start_time))\n",
    "    return features\n",
    "#下面只需要保留原始数据cut之前的数据\n",
    "test_features=make_test_data(df_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "train=DataFrame(train_features)\n",
    "train.columns=['k_1_4','k_3_4','k_median','anchor_cnt','anchor_ratio','lat_1_4','lat_3_4','lat_max','lat_min'\n",
    "    ,'lat_median','lat_mean','lon_1_4','lon_3_4','lon_max','lon_min','lon_median','lon_mean'\n",
    "    'speed_1_4','speed_3_4','speed_min','speed_max','speed_median','speed_mean','direction_1_4','direction_3_4','direction_max'\n",
    "    ,'direction_min','direction_median','direction_mean','sx','sy','ex','ey'\n",
    "    ,'dis','lon_dis','lat_dis','cal_speed','dis_sqrt','cnt_turn','label']\n",
    "train=train[train['label']>0.02*24]#筛选训练样本，0.05天以内的不予考虑\n",
    "train=train[train['label']<80*24]\n",
    "train.shape\n",
    "test=DataFrame(test_features)\n",
    "test.columns=['loadingOrder','k_1_4','k_3_4','k_median','anchor_cnt','anchor_ratio','lat_1_4','lat_3_4','lat_max','lat_min'\n",
    "    ,'lat_median','lat_mean','lon_1_4','lon_3_4','lon_max','lon_min','lon_median','lon_mean'\n",
    "    'speed_1_4','speed_3_4','speed_min','speed_max','speed_median','speed_mean','direction_1_4','direction_3_4','direction_max'\n",
    "    ,'direction_min','direction_median','direction_mean','sx','sy','ex','ey'\n",
    "    ,'dis','lon_dis','lat_dis','cal_speed','dis_sqrt','cnt_turn','label']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最长时间:74.52916666666667 day\n",
      "最短时间:0.03009259259259259 day\n",
      "平均时间:17.323283687607997 day\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_label=np.array(train['label']/24)\n",
    "##观察下预测结果的分布\n",
    "name_cnt={}#{订单号：对应的事件记录条数}\n",
    "tmp=[]\n",
    "print(\"最长时间:%s day\"%(np.max(train_label)))\n",
    "print(\"最短时间:%s day\"%np.min(train_label))\n",
    "print(\"平均时间:%s day\"%np.mean(train_label))\n",
    "#画出分布直方图\n",
    "import pylab as plt \n",
    "bins = np.linspace(int(min(train_label)),int(max(train_label)),int(max(train_label)))\n",
    "plt.hist(train_label,bins)\n",
    "plt.xlabel('ETA of orders ')\n",
    "plt.ylabel('Number of orders')\n",
    "plt.title('train lables')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察下测试集中给了多少天的轨迹数据\n",
    "- 最长时间:16.88171296296296 day\n",
    "- 最短时间:0.046527777777777786 day\n",
    "- 平均时间:4.325498415081749 day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最长时间:26.122685185185187 day\n",
      "最短时间:0.004050925925925926 day\n",
      "平均时间:2.5039671063757822 day\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#观察下测试集中给了多少天的轨迹数据\n",
    "test_label=np.array(test['label']/24)\n",
    "##观察下预测结果的分布\n",
    "name_cnt={}#{订单号：对应的事件记录条数}\n",
    "tmp=[]\n",
    "print(\"最长时间:%s day\"%(np.max(test_label)))\n",
    "print(\"最短时间:%s day\"%np.min(test_label))\n",
    "print(\"平均时间:%s day\"%np.mean(test_label))\n",
    "#画出分布直方图\n",
    "import pylab as plt \n",
    "bins = np.linspace(int(min(test_label)),int(max(test_label)),int(max(test_label)))\n",
    "plt.hist(test_label,bins)\n",
    "plt.xlabel('ETA of orders ')\n",
    "plt.ylabel('Number of orders')\n",
    "plt.title('test lables')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 搭建训练模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## xgb+lgb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "import xgboost as xgb\n",
    "import lightgbm as lgb\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from sklearn.model_selection import train_test_split\n",
    "import pandas as pd\n",
    "from tqdm import tqdm\n",
    "import numpy as np\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import mean_squared_error,explained_variance_score\n",
    "from sklearn.model_selection import KFold\n",
    "from matplotlib import pyplot as plt\n",
    "#from featexp import get_univariate_plots#用于特征筛选，需要先安装featexp\n",
    "%matplotlib inline\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((12046, 37), (219, 37))"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#\n",
    "features =['k_1_4','k_3_4','k_median','anchor_ratio','lat_1_4','lat_3_4','lat_max','lat_min'\n",
    "    ,'lat_median','lat_mean','lon_1_4','lon_3_4','lon_max','lon_min','lon_median','lon_mean'\n",
    "    'speed_1_4','speed_3_4','speed_min','speed_max','speed_median','speed_mean','direction_1_4','direction_3_4','direction_max'\n",
    "    ,'direction_min','direction_median','direction_mean','sx','sy','ex','ey'\n",
    "    ,'dis','lon_dis','lat_dis','cal_speed','dis_sqrt','cnt_turn']\n",
    "train_data=train[features]\n",
    "test_data=test[features]\n",
    "y=train['label']\n",
    "train_data.shape,test_data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7908.711501910327, 22.234951861377457)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(test_data['dis']),np.mean(test_data['speed_mean'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "indexs1=list(test_data[test_data['speed_mean']<15].index)\n",
    "indexs2=list(test_data[test_data['cal_speed']<15].index)\n",
    "for index in indexs1:\n",
    "    test_data.loc[index,'speed_mean']=20\n",
    "for index in indexs2:\n",
    "    test_data.loc[index,'cal_speed']=20\n",
    "#\n",
    "indexs1=list(train_data[train_data['speed_mean']<15].index)\n",
    "indexs2=list(train_data[train_data['cal_speed']<15].index)\n",
    "for index in indexs1:\n",
    "    train_data.loc[index,'speed_mean']=20\n",
    "for index in indexs2:\n",
    "    train_data.loc[index,'cal_speed']=20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7908.711501910327,\n",
       " 98.34030444617513,\n",
       " 92.71890651598174,\n",
       " 18.708866383561645,\n",
       " 24.301509706761074,\n",
       " 24.356996148508703)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(test_data['dis']),np.mean(test_data['dis_sqrt']),np.mean(test_data['lon_dis']),np.mean(test_data['lat_dis']),np.mean(test_data['cal_speed']),np.mean(test_data['speed_mean'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7240.769144999852,\n",
       " 78.49641899973942,\n",
       " 73.14385159579943,\n",
       " 19.737935742653164,\n",
       " 23.948171092294483,\n",
       " 22.78613865466693)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(train_data['dis']),np.mean(train_data['dis_sqrt']),np.mean(train_data['lon_dis']),np.mean(train_data['lat_dis']),np.mean(train_data['cal_speed']),np.mean(train_data['speed_mean'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "#features =['k_median','speed_mean','direction_mean','dis','lon_dis','lat_dis','cal_speed','dis_sqrt']\n",
    "#train_data=train[features]\n",
    "#test_data=test[features]\n",
    "#y=train['label']\n",
    "#train_data.shape,test_data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "#featuresx=[ 'dis','lon_dis','lat_dis','cal_speed']\n",
    "#train_data=train_data[featuresx]\n",
    "#test_data=test_data[featuresx]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\ndef pre_process(data):\\n    data=data.apply( lambda x: (x - x.mean()) / (x.std()))\\n    data=data.fillna(0.)\\n    return data\\n\\ntrain_test=pd.concat((train_data,test_data),axis=0).reset_index(drop=True)\\ntrain_test=pre_process(train_test)\\ntrain_data=train_test[:train_data.shape[0]].reset_index(drop=True)\\ntest_data=train_test[train_data.shape[0]:].reset_index(drop=True)\\n'"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "'''\n",
    "def pre_process(data):\n",
    "    data=data.apply( lambda x: (x - x.mean()) / (x.std()))\n",
    "    data=data.fillna(0.)\n",
    "    return data\n",
    "\n",
    "train_test=pd.concat((train_data,test_data),axis=0).reset_index(drop=True)\n",
    "train_test=pre_process(train_test)\n",
    "train_data=train_test[:train_data.shape[0]].reset_index(drop=True)\n",
    "test_data=train_test[train_data.shape[0]:].reset_index(drop=True)\n",
    "'''\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train,x_test,y_train,y_test=train_test_split(train_data,y,test_size=0.1,random_state=2020)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((10841, 37), (1205, 37))"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train.shape,x_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val_mse: 5.914089e+03\n",
      "train_mse: 1.276431e+02\n"
     ]
    }
   ],
   "source": [
    "llf=gbm = lgb.LGBMRegressor(objective='regression',\n",
    "                        num_leaves=51,\n",
    "                        learning_rate=0.1,\n",
    "                        n_estimators=600)\n",
    "\n",
    "llf.fit(x_train,y_train)\n",
    "\n",
    "llf_val_mse=mean_squared_error(y_test,llf.predict(x_test))\n",
    "llf_train_mse=mean_squared_error(y_train,llf.predict(x_train))\n",
    "print('val_mse:','{:e}'.format(llf_val_mse))\n",
    "print('train_mse:','{:e}'.format(llf_train_mse))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val_mse: 5.565053e+03\n",
      "train_mse: 2.661933e+02\n"
     ]
    }
   ],
   "source": [
    "cv_params = {'n_estimators': [400, 500, 600, 700, 800]}\n",
    "other_params = {'learning_rate': 0.05, 'n_estimators': 600, 'max_depth': 7, 'min_child_weight': 1, 'seed': 0,\n",
    "                'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0, 'reg_alpha': 0, 'reg_lambda': 1}\n",
    "\n",
    "xlf = xgb.XGBRegressor(**other_params)\n",
    "xlf.fit(x_train,y_train)\n",
    "xlf_val_mse=mean_squared_error(y_test,xlf.predict(x_test))\n",
    "xlf_train_mse=mean_squared_error(y_train,xlf.predict(x_train))\n",
    "print('val_mse:','{:e}'.format(xlf_val_mse))\n",
    "print('train_mse:','{:e}'.format(xlf_train_mse))\n",
    "#optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='r2', cv=5, verbose=1, n_jobs=4)\n",
    "#optimized_GBM.fit(train_data, y)\n",
    "#evalute_result = optimized_GBM.grid_scores_\n",
    "#print('每轮迭代运行结果:{0}'.format(evalute_result))\n",
    "#print('参数的最佳取值：{0}'.format(optimized_GBM.best_params_))\n",
    "#print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第1次验证mse误差为5502.922053\n",
      "第2次验证mse误差为3721.894970\n",
      "第3次验证mse误差为4142.554346\n",
      "第4次验证mse误差为3925.342969\n",
      "第5次验证mse误差为5213.936571\n",
      "平均验证误差4501.330182\n"
     ]
    }
   ],
   "source": [
    "details=[]\n",
    "answers=np.zeros(len(test))\n",
    "n_splits=5\n",
    "cnt=0\n",
    "mean_error=0\n",
    "sk=KFold(n_splits=n_splits,shuffle=True,random_state=2020)\n",
    "for train_k,test_k in sk.split(train_data,y):\n",
    "    cnt+=1\n",
    "    x_train=train_data.iloc[train_k]\n",
    "    y_train=y.iloc[train_k]\n",
    "    x_test=train_data.iloc[test_k]\n",
    "    y_test=y.iloc[test_k]\n",
    "    \n",
    "    xlf.fit(x_train,y_train)\n",
    "    pred_xgb=xlf.predict(x_test)\n",
    "    weight_xgb=mean_squared_error(y_test,pred_xgb)\n",
    "    \n",
    "    llf.fit(x_train,y_train)\n",
    "    pred_llf=llf.predict(x_test)\n",
    "    weight_lgb=mean_squared_error(y_test,pred_llf)\n",
    "    \n",
    "    \n",
    "    prob_xgb=xlf.predict(x_test)\n",
    "    prob_lgb=llf.predict(x_test)\n",
    "    \n",
    "    errors=[]\n",
    "    ij=[]\n",
    "    weight=np.arange(0,1.05,0.1)\n",
    "    for i,item in enumerate(weight):\n",
    "        prob_end=prob_xgb*item+prob_lgb*(1-item)\n",
    "        error=mean_squared_error(y_test,prob_end)\n",
    "        errors.append(error)\n",
    "        ij.append((item,1-item))\n",
    "    \n",
    "    ii=ij[np.argmin(errors)][0]\n",
    "    jj=ij[np.argmin(errors)][1]\n",
    "    \n",
    "    details.append(min(errors))\n",
    "    details.append(weight_xgb)\n",
    "    details.append(weight_lgb)\n",
    "    details.append(ii)\n",
    "    details.append(jj)\n",
    "\n",
    "    print(\"第%d次验证mse误差为%f\" %(cnt,min(errors)))\n",
    "   \n",
    "    test_xgb=xlf.predict(test_data)\n",
    "    test_lgb=llf.predict(test_data)\n",
    "    ans=test_xgb*ii+test_lgb*jj\n",
    "    #ans=test_lgb\n",
    "    mean_error+=min(errors)/n_splits\n",
    "    answers+=ans/n_splits\n",
    "print(\"平均验证误差%f\"%mean_error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察训练/验证过程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>test_end_score</th>\n",
       "      <th>xgboost</th>\n",
       "      <th>lightgbm</th>\n",
       "      <th>weight_xgboost</th>\n",
       "      <th>weight_lightgbm</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5502.922053</td>\n",
       "      <td>5618.670536</td>\n",
       "      <td>5709.409668</td>\n",
       "      <td>0.6</td>\n",
       "      <td>0.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3721.894970</td>\n",
       "      <td>3759.043340</td>\n",
       "      <td>4150.666245</td>\n",
       "      <td>0.8</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4142.554346</td>\n",
       "      <td>4178.756375</td>\n",
       "      <td>4522.571449</td>\n",
       "      <td>0.8</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3925.342969</td>\n",
       "      <td>3992.704443</td>\n",
       "      <td>4176.868566</td>\n",
       "      <td>0.7</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5213.936571</td>\n",
       "      <td>5213.936571</td>\n",
       "      <td>5697.324559</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   test_end_score      xgboost     lightgbm  weight_xgboost  weight_lightgbm\n",
       "0     5502.922053  5618.670536  5709.409668             0.6              0.4\n",
       "1     3721.894970  3759.043340  4150.666245             0.8              0.2\n",
       "2     4142.554346  4178.756375  4522.571449             0.8              0.2\n",
       "3     3925.342969  3992.704443  4176.868566             0.7              0.3\n",
       "4     5213.936571  5213.936571  5697.324559             1.0              0.0"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#观察训练/验证过程\n",
    "df=pd.DataFrame(np.array(details).reshape(int(len(details)/5),5)\n",
    "                ,columns=['test_end_score','xgboost','lightgbm','weight_xgboost','weight_lightgbm',])\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察预测结果的分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测的最长时间:40.537198357630444 day\n",
      "预测的最短时间:1.1211440767165428 day\n",
      "预测的平均时间:15.761769569052792 day\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##观察下预测结果的分布\n",
    "re_day=answers/24\n",
    "name_cnt={}#{订单号：对应的事件记录条数}\n",
    "tmp=[]\n",
    "print(\"预测的最长时间:%s day\"%(np.max(re_day)))\n",
    "print(\"预测的最短时间:%s day\"%np.min(re_day))\n",
    "print(\"预测的平均时间:%s day\"%np.mean(re_day))\n",
    "#画出分布直方图\n",
    "import pylab as plt \n",
    "bins = np.linspace(int(min(re_day)),int(max(re_day)),int(max(re_day)))\n",
    "plt.hist(re_day,bins)\n",
    "plt.xlabel('ETA of orders ')\n",
    "plt.ylabel('Number of orders')\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测的最长时间:49.438047205192184 day\n",
      "预测的最短时间:0.016009575887088054 day\n",
      "预测的平均时间:14.267604368727907 day\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cal_ans=test_data['dis']/test_data['speed_mean']\n",
    "cal_ans=cal_ans.values\n",
    "re_day=cal_ans/24\n",
    "name_cnt={}#{订单号：对应的事件记录条数}\n",
    "tmp=[]\n",
    "print(\"预测的最长时间:%s day\"%(np.max(re_day)))\n",
    "print(\"预测的最短时间:%s day\"%np.min(re_day))\n",
    "print(\"预测的平均时间:%s day\"%np.mean(re_day))\n",
    "#画出分布直方图\n",
    "import pylab as plt \n",
    "bins = np.linspace(int(min(re_day)),int(max(re_day)),int(max(re_day)))\n",
    "plt.hist(re_day,bins)\n",
    "plt.xlabel('ETA of orders ')\n",
    "plt.ylabel('Number of orders')\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "answer与ans11025的mse:22232\n",
      "answer与ans11302的mse:2645\n"
     ]
    }
   ],
   "source": [
    "ans11025=np.load('../submit/11025.npy')\n",
    "ans11302=np.load('../submit/11302.npy')\n",
    "print(\"answer与ans11025的mse:%.0f\"%mean_squared_error(cal_ans,ans11025))\n",
    "print(\"answer与ans11302的mse:%.0f\"%mean_squared_error(answers,ans11302))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {},
   "outputs": [],
   "source": [
    "cal_ans[24]+=105\n",
    "cal_ans[87]+=68"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(71.49381087623121, 35.51198608944358, 105.38422982129012, 77.78252755265362)"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "answers[24],answers[87],cal_ans[24],cal_ans[87]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 特征重要度筛选"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1296x648 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(18,9))\n",
    "lgb.plot_importance(llf,max_num_features=16)\n",
    "plt.title('lightgbm——feature_importances_',fontsize=14)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1296x648 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(18,9))\n",
    "xgb.plot_importance(xlf,max_num_features=16,importance_type='weight')#'gain'可以换成weight\n",
    "plt.title('xgboost——feature_importances_',fontsize=14)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'xgboost&lightgbm——feature_importances_')"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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ZGVmsyTtmb58zz331KxZs3J+trKyUp9//nnOmF122UVlZWU5Y6ZNs/wVbSD69SvN9eKhhx7S+eefL0lq1qyZZsyYoX333Tdj7JNPPqlTTz1VktS4cWNNnTpVRx55ZK245557Tueee66WLFmSsZxmzZppzJgx+v73v6/u3btLkrp27aqKiopasRUVFSkxn3zyiS6//HKNHTs26zb16tVLTzzxhPbcs9bhnWLDhg266qqrdOedd2rjxo1Z49q1a6dRo0Zp8ODBOcuTpBkzZujcc8/VZ599ljPu+OOP14QJE7TddttljXnyySd1wQUXaOnSpXnX26VLF3311VfJ10OGDNEDDzyQ93OSdPTRR2vatGmRYjdVsa4ZAAAAAAAA2DxR78mW6n4lgPrTu3dvzZ49O9Nbs51zveu7PvWpSakrAAD5nHfeeXrmmWf0yCOPqKqqSgMHDtRbb72lFi1apMQtWLBAQ4cOTb6+9tprMyZwX3nlFZ166qlau3atJMnMdOihh2r33XfXunXrNH36dFVUVGjYsGEaPXp0wfX95S9/mUzg9unTR/vtt5/MTDNnztQHH3wgSfr44491zDHHaPr06dpll10yllNdXa3TTz9dEydOTC7bdttt1a9fP2277baaN2+epk6dqqqqKi1btkxDhgzR0qVLNXz48Kx1e/HFFzVgwACtWbMmuezggw9W7969VVVVpddeey2Z3J08ebKOOOIIvfzyyxkTuW+++abOOOMMbdiwQZLUokULHXLIIerWrZvKysq0YsUKffbZZ3r//fdT1pdw3HHHqVWrVvrwww/1wgsvSJJ23313HXvssbVie/bsmXWbAAAAAAAAAADY2pDEBbBFuOuuuzR9+nTNnTtXc+bM0VVXXaW77ror+b5zToMHD052K9y3b1/ddNNNtcpZu3atBg8enEzg9uzZU48//rj22WeflLhx48bp0ksv1TXXXFNQPRcsWKCRI0eqQ4cOGj9+vE488cSU95955hmde+65Wrp0qRYvXqyhQ4dqypQpMqv9dOFtt92WksC95pprdPPNN6e0BF20aJEGDx6s5557TpJ09dVX69BDD1Xfvn1rlbd06VINHDgwmVDt0aOHHn30UR144IEpcRMmTNBFF12ktWvX6uOPP9bQoUNT6pFwyy23JBO4p59+usaNG6f27dvXiqusrNQLL7xQq4xBgwZp0KBBKi8vTyZx+/btqz//+c+1ygAAAAAAAAAAoCFhTFwAW4S2bdtqwoQJaty4sSRp7NixKUnB2267Tc8//7wkqVWrVpowYYKaNKn9nMp9992XbGnaunVrTZ48uVYCV5IuuugijR49WpWVlQXVc/369WrUqJEmTpxYK4ErSQMGDNCTTz6ZTNpOmzZNzzzzTK24FStW6De/+U3y9VVXXaVbb721Vle+O+64oyZOnKiDDjpIku9++dprr81Yt1GjRiXHpW3Xrp2mTJlSK4ErSeeee64mTJiQfP3UU0/pxRdfrBX38ssvS5LKyspUXl6eMYGbeP+kk07K2b00AAAAAAAAAACoQRIXwBbj8MMP13XXXZd8PXToUC1cuFAzZ87U9ddfn1z+pz/9ST169MhYxv3335+cv/LKK9W1a9es6xs2bJh22223gus5aNAgHXbYYVnfP/LIIzVw4MDk63HjxtWKefjhh7Vq1SpJ0g477KBbbrkla3llZWUprVenTp2qjz76KCXGOad77rkn+fqGG27QzjvvnLXM0047TQMGDEi+Drd6TlixYoUkqWXLlmrVqlXWsgAAAAAAAAAAQGFI4gLYotx4443JBOmSJUt03nnnaeDAgaqqqpIknXnmmRoyZEjGz65cuVJvv/128nU4kZpJo0aNdM455xRcx/PPPz9vzODBg5Pz06ZNk3Mu5f0pU6Yk588+++xa4/+mO/jgg7XXXnslX0+dOjXl/Tlz5mjRokWS/HaF15/NhRdemFLHdIkk8NKlS/Xwww/nLQ8AAAAAAAAAAERDEhfAFqVx48YaP3682rRpI0l64YUXkq1Od9ppJ919991ZP/vuu++qurpaktSmTZtIrWwT3RRHZWYZx6NN17dv32SXysuWLVNFRUXK++Fk8+GHHx5p3eG4mTNnZi1v9913V4cOHQoqb9GiRVqwYEHK+2eddVZyftCgQTr55JM1YcIELVy4MFJ9AQAAAAAAAABAZiRxAWxxunfvrjvvvDNlWaNGjfTQQw+pXbt2WT+3ZMmS5Pz3vve9SOvq0qVLQXVr3759pK6F27Rpo7Zt2yZff/PNNynvh1/n6vI5rFu3bsn58LZuank77LCDmjdvnrXM6667Lpnodc7pqaee0qBBg9S5c2ftsssuGjx4sB566KFkt8sAAAAAAAAAACAakrgAtkjbb799yusuXbro4IMPzvmZxBizkh/HNYptttmmoHpFLTe97JUrV6a8F65r1DoUu7x8ZbZs2VJTp07VyJEja41B/MUXX+jBBx/U+eefr06dOunqq6/W2rVrI68XAAAAAAAAAICGjCQugC3Ot99+W2tM13nz5umqq67K+blwQnLNmjWR1rV69eqC6ha13PSyW7dunfJeuDVv1DoUu7x8ZUpS06ZNNXz4cH366ad6//33dccdd+jss89OacG8Zs0a3Xbbberfvz+JXAAAAAAAAAAAIiCJC2CLM3To0OS4qz179lSjRv5SNnbsWD311FNZP9exY8fk/Pz58yOtK2pcwtKlS2u1WM1kxYoVWr58eca6SdJ2222XnP/yyy8jrXvu3LlFLe/rr7/WunXrspaZrk+fPrr00kv1yCOP6KuvvtLbb7+toUOHJt+fMWOG7rjjjkjrBgAAAAAAAACgISOJC2CLcvfdd+vJJ5+U5Lvzffrpp3Xttdcm3x86dKgWLVqU8bP77LOPzEyStHz5cn300Ud51/fGG28UVD/nnGbMmJE3bsaMGXLOSZLatWun7t27p7y/3377JeenT58ead2vvPJKcn7//ffPWt6HH36o7777rqDydtxxR3Xu3DlSPRL23Xdf3Xvvvbr44ouTyyZOnFgrLvGdAAAAAAAAAAAAjyQugC3GRx99lNJl8siRI9WrVy+NGDEiOR7uN998oyFDhiQTpGFt2rRJSWY+/PDDOddXXV2tRx55pOB6PvTQQ3ljysvLk/P9+vWrlcg85phjkvOPPvpoSovYTGbOnKn33nsv+bp///4p7++xxx7acccdJUkbN27U+PHj89bx/vvvz1peIX74wx8m5xcvXlzr/ebNmyfn169fv8nrAQAAAAAAAABga0ESF8AWYf369Ro4cGByzNlTTjkl2cKzSZMmmjBhQnLc12effVajR4/OWM4FF1yQnB85cmRKF8Tpxo4dG6m1brrx48fnbD370ksvpSSHL7zwwloxAwcOTI5Bu3DhQv3617/OWl5VVZUuu+yy5Ov+/ftrt912S4kxs5QWsTfffHPOrqL/9a9/pXRNPWzYsJT3KysrtWrVqqyfDwt33xzu1jmhQ4cOyflCu68GAAAAAAAAAGBrRBIXwBbhuuuu08yZMyVJnTp10r333pvy/q677pqSuP3Vr36l999/v1Y5P/3pT5NdF69cuVLHH3+83n333Vpx48aN0xVXXKGysrKC6tm0aVNVV1fr5JNP1rPPPlvr/UmTJumUU05JthQ+6qijdNJJJ9WKa9Omja6//vrk69///ve64YYbVFVVlRK3ePFinXbaacmkcZMmTfS73/0uY92GDx+uLl26SJK+/fZbHXvssXrnnXdqxT322GM666yzkq9/9KMf6aijjkqJWbhwoXbaaSf94he/0Ouvv55xfc45TZo0STfeeGNyWaZt3WuvvZLzM2bMiDxmLwAAAAAAAAAAWyvL1OUoEBdmNkvSnunL99xzT82aNSvnZysrK/X555/njNlll13yJummTWO8zoR+/UpzvZgyZYqOP/54VVdXy8w0adIknXDCCRljf/KTn+hvf/ubJKlPnz564403UrrrlaQXX3xRJ5xwgiorKyX5VqqHHnqodt99d61bt07Tp09XRUWFJGn06NG64oorJEndu3fPeExVVFQkE8Ndu3bVj3/8Y40cOVKStPfeeye7cJ45c2ZKYnn77bfX9OnT1aNHj4zbUl1drVNPPTWlRWyHDh3Uv39/tW/fXvPmzdPUqVOT2yH51sXDhw/Psif9tg8YMCDZotnM1LdvX+25556qqqrSjBkz9MknnyTje/bsqVdeeaVWC9rwNkvStttuq/32209dunRRWVmZvv76a7333nv64osvkjG9evXSzJkztc0229Sq1xFHHJEcg7ddu3Y68cQT1alTJzVq5J816tGjhy655JKs21UMxbpmAAAAAAAAYPNEvSdbqvuVAOpP7969NXv27ExvzXbO9a7v+tQnkriINZK48VKKP4q+++477b333sludq+44gqNGjUqa/zSpUu1995766uvvpIkXXbZZRozZkytuEmTJmnQoEH69ttvM5bTrFkzjRkzRsccc4x69eolySdkM7XaTU/ifvLJJ/rZz36mcePGZa3nrrvuqieeeEJ9+vTJGiNJGzZs0JVXXqm77rpLGzduzBrXtm1bjRo16v/Zu/dor8oC/+OfzUWUOIh4A3WSpBRRJzEvaWXoUHkpS11oipWXUtAZzSZ1OavJfrOm6afLosTGC6lUpikuES1zvNKPJQammaaY4yjaiJWgKChX2b8/OJwO13OOwDmP57xea521nv39PnvvZx/1rFbvtffOySefvN7jJclvfvObjBo1qsX/PkaMGJEbbrhhrY9AfumllzJ48OBVAvL6DB8+PDfeeGPTe3lX9+ijj+aQQw7JG2+8sdbvP/7xj2fKlCmtOtc7JeICAAAAlEHEBVbqyhG3R0cvAErnfwh0rNNPP70p4O655565+OKL1zt/q622yk9+8pOMGDEiy5cvz7hx43L44Yfn8MMPX2XeYYcdlpkzZ2bcuHGZPHlynn/++dR1nZ122ikjRozImDFjMnTo0EyfPr1pn379+rVqzT179szVV1+dkSNH5pprrsmMGTPy8ssvp3fv3hkyZEhGjhyZ0aNHr3GH8Nr06NEj48aNy+jRo3Pttdfmvvvuy5/+9KfMnz8//fv3z6677pojjjgiX/nKV1Z5t+z6fPjDH87MmTNz/fXX57bbbstjjz2Wv/71r+nZs2cGDBiQj370oznhhBPWebdzkuy4446ZO3du7r///kydOjWPPPJInn322bzyyitZsmRJGhoasvPOO2e//fbLVlLWNQAAIABJREFU8ccfnxEjRqx3Tfvss08ef/zxjBs3Lvfff3+ee+65LFiwYL3hGgAAAAAAOit34lK0Eu7EpWsbP358Tj/99CTJGWeckSuvvLKDV8Sm4m8GAAAAQBnciQus1JXvxO3W0QsAKNnNN9/cNN5vv/06cCUAAAAAAEBXIeICrMPkyZNz7733Jkl69eqVo48+uoNXBAAAAAAAdAUiLtDlvPjiiznuuOMybdq0rO2R8kuWLMnll1+e448/vumz0047Lf3792/PZQIAAAAAAF1Uj45eAEB7W758eSZOnJiJEydmwIAB2WeffTJw4MBUVZXZs2fnoYceymuvvdY0f8iQIbn44os7cMUAAAAAAEBXIuICXdqf//zn3Hnnnev8/tBDD81NN92UPn36tOOqAAAAAACArkzEBbqcQYMGZfr06bnjjjvy0EMP5aWXXsqcOXMyb968NDQ0ZODAgfnIRz6S4447LiNGjOjo5QIAAAAAAF2MiAt0Sfvvv3/233//jl4GAAAAAADAGrp19AIAAAAAAAAA+BsRFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLFG/QoEGpqipVVWXWrFlrfH/yySc3fT9hwoR2W9eECROaznvyySe323nbw6xZs5qubdCgQR29HAAAAAAA6FJ6dPQCoHTVlCkdvYRi1MOHd/QSAAAAAAAAOj134gIUxB2wAAAAAACAiAsAAAAAAABQEI9TBt71JkyY0K7vwgUAAAAAANiU3IkLAAAAAAAAUBARFwAAAAAAAKAgIi7wrnfyySenqqpUVdWqxyr/4Q9/yJgxY/KBD3wgvXv3zjbbbJN999033/nOdzJnzpwkKx7RvPKYJ598cpvWM2nSpHzmM5/Je9/73vTq1SvbbbddPvnJT+b6669PXddr3Wfl+d73vvc1ffbCCy80rWH1n3WZM2dOLrroouy9997Zcsst09DQkN133z1nn312Zs6cmSSZNWtW03EGDRrUpmt74IEHcuKJJ2bw4MHZYostss022+SjH/1oLrvssixatKjF/QcNGtR07lmzZiVJnnnmmZx77rkZOnRoGhoa8p73vCf77rtvLrvssixdunSNY8yYMSNf+MIXsttuuzX98/vUpz6VyZMnt+laAAAAAACgVN6JC3Qpl1xySb7xjW+sEgcXLlyYuXPn5pFHHsm4ceNyyy23vKNjv/766/niF7+Y22+/fZXPX3nlldxzzz2555578rOf/Sy33nprtthiiw26jrW5++67M2rUqKYQvdLTTz+dp59+OldddVUuu+yyfOpTn2rzsZcuXZqzzz47V1555SqfL1q0KA8++GAefPDB/PCHP8ykSZMydOjQVh93woQJGTNmzBoB+JFHHskjjzySO+64I7/4xS/Sq1evvP322xkzZkzGjx+/ytyFCxfm7rvvzt13352vfvWrGTt2bJuvDwAAAAAASiLiAl3G9773vVxwwQVN25tvvnkOOeSQ7LTTTpkzZ04eeOCBvPzyy/n0pz+dr371q2069ttvv51jjz029913XzbbbLMcdNBBGTx4cBYtWpSpU6fmxRdfTJLcdddd+drXvpYrrrhilf133333nHXWWZk/f35+8pOfJEkaGhryxS9+sVXnf/DBB/O5z30uCxcuTJJUVZUDDzwwQ4YMyaJFizJt2rTMmjUro0ePzg9+8IM2XVuSXHDBBU0Bd88998ywYcNSVVUeffTR/OEPf0iy4o7aQw89NNOmTcsuu+zS4jHvvPPO/OM//mPqus7uu++efffdNz179szDDz+cJ554Ikly77335p/+6Z9y9dVXZ/To0fnRj36Ubt265cMf/nCGDBmSxYsX54EHHsjs2bOTJN///vez7777ZtSoUW2+RgAAAAAAKIWIC3QJTz75ZC688MKm7SOPPDLXXXddtt1226bP3nrrrfzzP/9zrrzyyvzHf/xHm44/ceLELF68OIcffnjGjx+fHXfcsem7ZcuW5cILL8yll16aJLnqqqtywQUXrPIo4wMOOCAHHHBAZs2a1RRx+/fvn8svv7zFcy9cuDBf+tKXmgLuBz7wgUycODEf/OAHV5k3fvz4nHnmmTn//PPbdG2zZ8/O2LFjs/XWW+f666/PYYcdtsr3v/rVrzJq1Ki89tpr+ctf/pLTTjst999//3of+5wk5557bhoaGvLTn/40Rx111CrfXXbZZTnnnHOSJNddd1122223/OhHP8pee+2Vn//856vc7bt48eKceuqpueGGG5Ik//qv/5oTTzyxxfMDAAAAAECpvBMX6BK+9a1vZcmSJUmSfffdN7feeusqATdJevfunSuuuCIjR47M4sWL23T8xYsX52Mf+1huv/32VQJukvTo0SOXXHJJ9ttvvyRJXde56aabNuBqVnXttdfmf/7nf5KsuHv3nnvuWSPgJslXvvKV/OAHP2jztS1dujTdunXL7bffvkbATZLDDz88kydPboqmU6ZMya9+9atWHfe2225bI+Amydlnn9302Odly5bl61//egYMGJD77rtvjcc19+rVK1dddVW23nrrJMnzzz+fGTNmtOkaAQAAAACgJCIu0Om9+uqrmTx5ctP2JZdcks0222yd87/73e+mW7e2/3kcO3ZsevRY+wMOqqrKKaec0rT98MMPt/n463Ldddc1jc8999zsvPPO65w7evTo7Lbbbm0+x0knnZSDDjpond9/7GMfy4knnti0vfp7a9fmc5/7XA455JB1fn/88cevsv0v//Iva4T3lfr06ZMjjzyyaXtj/n4BAAAAAKC9ibhApzdt2rQsXbo0STJw4MAMHz58vfP/7u/+LgcffHCbzrHLLrvkQx/60HrnDBs2rGk8a9asNh1/XebPn5/f/e53TdvNQ+radOvWLSeccEKbz9Oad/N+6UtfahpPmTIldV2vd/6xxx673u/33HPPVbaPOeaYVs9//vnn1zsXAAAAAABKJuICnd5jjz3WNN5vv/1a9a7UlY8+bq299tqrxTkrH/ebJK+//nqbjr8uv//977N8+fIkSd++fVt1l21br62qqhxwwAEtzjvggAOafrfz5s1rMVTvscce6/1+q622ahpvueWWazymen3z33jjjRZWCwAAAAAA5RJxgU5vzpw5TeOddtqpVfu0FAxXt+WWW7Y4p2fPnk3jlXcGb6j2uLatttoqffr0aXFe3759V/k9vPLKK+ud39LvrPmjqVvz+20+f2P9fgEAAAAAoCOIuECnt2DBgqZx7969W7XPe97znjadozV3924K7XFtrT3u6seeP3/+eue25XfWUb9fAAAAAADoCCIu0Ok1D4tvvfVWq/Z58803N9VyNqr2uLbWHnf1Yzc0NLTpPAAAAAAAwAoiLtDpbbPNNk3j//3f/23VPi+99NKmWs5G1fzaWrvmtl7ba6+91uJdtcmK99A2f9dv87UBAAAAAACtJ+ICnd7ee+/dNP7tb3+buq5b3Ofhhx/elEtap7Y+NviDH/xg0z6vv/56/vjHP7a4T1uvra7rTJ8+vcV506dPb/rd9uvXL+973/vadB4AAAAAAGAFERfo9A466KD07NkzSTJ79uxMmTJlvfP/9Kc/ZerUqe2wsjVtvvnmTeOlS5e2OL9v374ZNmxY0/YNN9yw3vnLly/PjTfe2OZ1/fSnP21xzoQJE5rGw4cP9x5bAAAAAAB4h0RcoNPbeuutc9RRRzVtn3/++VmyZMk653/961/P22+/3R5LW0O/fv3SrduKP81//etfWxVyTznllKbx2LFj88ILL6xz7pVXXtmqu3VXd/3112fatGnr/H7q1KmrxOEvf/nLbT4HAAAAAACwgogLdAkXXXRR0924v/3tb3PMMcfklVdeWWXOW2+9lTFjxuTmm29Or169OmKZ6dWrV3bdddckybJlyzJp0qQW9zn11FObHl08f/78fOITn8jvf//7NeaNHz8+55xzTpuvrWfPnlm+fHmOOuqo/Nd//dca399111357Gc/2/Qo5YMPPjhHHHFEm84BAAAAAAD8TY+OXgBAe9hrr73y7W9/O+eff36S5Je//GV23nnnHHLIIdlxxx0zd+7c3H///Zk3b1769euXc889NxdddFGSNN0Z216OPfbYfPvb306SnHTSSfnxj3+c97///U0ROkkuvfTSpnHv3r0zYcKEfPKTn8zixYvz3//93xk2bFgOPPDADBkyJIsWLcq0adMya9asJMl3v/vdnHPOOUlad2077LBDjjnmmIwdOzaHHXZY/v7v/77pEc6PPvponnjiiaa52223Xa699lqPUgYAAAAAgA0g4gJdxnnnnZdly5blm9/8ZpYtW5aFCxfmzjvvXGXOwIEDc8stt+TJJ59s+qyhoaFd13n++edn0qRJeeqpp7J06dI11pisGnGTFXe/3nbbbTnppJMyd+7c1HWdadOmrfII5M022yyXXXZZDj300KaI29pru/jii7NgwYKMHz8+jz/+eB5//PE15rz//e/PpEmTMnjw4LZcLgAAAAAAsBoRF1pQDx/e0UtgI7rwwgvz6U9/OpdffnnuvffezJ49O717986gQYNy7LHH5vTTT88222yTqVOnNu3Tr1+/dl1j3759M2PGjFxxxRW54447MnPmzMybN6/F9+MedthhmTlzZsaNG5fJkyfn+eefT13X2WmnnTJixIiMGTMmQ4cOzfTp05v2ae219ezZM1dffXVGjhyZa665JjNmzMjLL7+c3r17Z8iQIRk5cmRGjx6dzTfffIOuHQAAAAAASKqV7zCEElVV9WSSoat/PnTo0FXulFybxYsX57nnnlvvnF122aXD3n1K2UaNGpUbbrghSXLjjTfm85//fAevaOMZP358Tj/99CTJGWeckSuvvLKDV1QGfzMAAAAAyjBlSute1TV8uL4Bnd0ee+yRp556am1fPVXX9R7tvZ721L4vegR4F3jzzTdXeYTxfvvt14Gr2fhuvvnmpnFnuzYAAAAAAOgMRFyA1XzjG9/IvHnzkqyInJ3pHa+TJ0/OvffemyTp1atXjj766A5eEQAAAAAAsDoRF+gybrnllpx33nl59tln1/r9nDlzcuaZZ+b73/9+02fnnXdeey1vg7z44os57rjjMm3atKztMflLlizJ5ZdfnuOPP77ps9NOOy39+/dvz2UCAAAAAACt0KOjFwDQXhYsWJBLL700l156aXbdddfstdde2XrrrbN48eI8//zzmT59ehYvXtw0f9SoURk5cmQHrrj1li9fnokTJ2bixIkZMGBA9tlnnwwcODBVVWX27Nl56KGH8tprrzXNHzJkSC6++OIOXDEAAAAAALAuIi7QJT3zzDN55pln1vpd9+7dc9ZZZ+V73/teO69q4/jzn/+8yjt9V3fo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EXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKBBJuG0AAAgAElEQVQgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAA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3zFJjtlsOwAAAAAAAMCua7dlBwAAAAAAAABghSIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMiCIuAAAAAAAAwIAo4gIAAAAAAAAMyB7LDgAAAAAAAMzfSSeVqeY74og65yQA7IyeuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAAAAADoogLAAAAAAAAMCCKuAAAAAAA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AACwxKqqkjwxyWOTPDjJXZIcluSqJJcluSDJ2Une1z4AAgAAwFIQ4gIAAAAAAAAsENMpAwAAAAAAACwQIS4AAAAAAADAAjlo3gUAAABwc1V19Ha8TndfvB2vAwAAAGyONXEBAAAWTFXtSjLrD2vd3S7sBQAAgAXkAzsAAMDiqnkXAAAAAGw/IS4AAMDiuTizH4kLAAAALCjTKQMAAAAAAAAskAPmXQAAAAAAAAAAuwlxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggQhxAQAAAAAAABaIEBcAAAAAAABggfwfHOgn/BUkm8IAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 2160x900 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "width=0.25\n",
    "address=np.arange(len(train_data.columns))\n",
    "tick_label=train_data.columns\n",
    "plt.figure(dpi=600,figsize=(3.6,1.5))\n",
    "plt.bar(address\n",
    "        ,xlf.feature_importances_\n",
    "        ,width\n",
    "        ,color='y'\n",
    "        ,label='xgboost')\n",
    "plt.bar(address+width\n",
    "        ,llf.feature_importances_/sum(llf.feature_importances_)\n",
    "        ,width\n",
    "        ,color='c'\n",
    "        ,label='lightgbm')\n",
    "plt.legend(fontsize=4)\n",
    "plt.xticks(address+width\n",
    "           ,tick_label\n",
    "           ,fontsize=4\n",
    "           ,rotation=90\n",
    "           ,horizontalalignment='center')\n",
    "plt.yticks(fontsize=4,rotation=0)\n",
    "plt.title('xgboost&lightgbm——feature_importances_',fontsize=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 生成提交文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "DH829189593918 105.0\n",
    "24 105.0\n",
    "LE381377964668 68.0\n",
    "87,68.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 205,
   "metadata": {},
   "outputs": [],
   "source": [
    "test['label'] = cal_ans\n",
    "result=test[['loadingOrder', 'label']]\n",
    "test_data_path = '../R2 ATest 0711.csv'\n",
    "test_data=pd.read_csv(test_data_path)\n",
    "test_data=get_data(test_data, mode='test')\n",
    "#\n",
    "test_data = test_data.merge(result, on='loadingOrder', how='left')\n",
    "test_data['ETA'] = (test_data['onboardDate'] + test_data['label'].apply(lambda x:pd.Timedelta(hours=x))).apply(lambda x:x.strftime('%Y/%m/%d  %H:%M:%S'))\n",
    "test_data.drop(['direction','TRANSPORT_TRACE'],axis=1,inplace=True)\n",
    "test_data['onboardDate'] = test_data['onboardDate'].apply(lambda x:x.strftime('%Y/%m/%d  %H:%M:%S'))\n",
    "test_data['creatDate'] = pd.datetime.now().strftime('%Y/%m/%d  %H:%M:%S')\n",
    "test_data['timestamp'] = test_data['temp_timestamp']\n",
    "# 整理columns顺序\n",
    "submit = test_data[['loadingOrder', 'timestamp', 'longitude', 'latitude', 'carrierName', 'vesselMMSI', 'onboardDate', 'ETA', 'creatDate']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loadingOrder</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>longitude</th>\n",
       "      <th>latitude</th>\n",
       "      <th>carrierName</th>\n",
       "      <th>vesselMMSI</th>\n",
       "      <th>onboardDate</th>\n",
       "      <th>ETA</th>\n",
       "      <th>creatDate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>29536</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:19:28.000Z</td>\n",
       "      <td>114.061383</td>\n",
       "      <td>22.359500</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29537</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:24:28.000Z</td>\n",
       "      <td>114.074933</td>\n",
       "      <td>22.350750</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29538</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:29:58.000Z</td>\n",
       "      <td>114.081983</td>\n",
       "      <td>22.329350</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29541</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:30:28.000Z</td>\n",
       "      <td>114.082833</td>\n",
       "      <td>22.327083</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29544</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:31:28.000Z</td>\n",
       "      <td>114.084383</td>\n",
       "      <td>22.323150</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32945</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:41:08.000Z</td>\n",
       "      <td>31.126853</td>\n",
       "      <td>-29.817860</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32946</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:43:08.000Z</td>\n",
       "      <td>31.125547</td>\n",
       "      <td>-29.818770</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32947</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:46:08.000Z</td>\n",
       "      <td>31.119920</td>\n",
       "      <td>-29.818930</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32948</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:47:08.000Z</td>\n",
       "      <td>31.118000</td>\n",
       "      <td>-29.818530</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32949</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T08:16:08.000Z</td>\n",
       "      <td>31.069547</td>\n",
       "      <td>-29.854480</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/03  07:14:20</td>\n",
       "      <td>2020/07/16  17:38:57</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>735 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         loadingOrder                 timestamp   longitude   latitude  \\\n",
       "29536  FA712454830300  2020-01-28T05:19:28.000Z  114.061383  22.359500   \n",
       "29537  FA712454830300  2020-01-28T05:24:28.000Z  114.074933  22.350750   \n",
       "29538  FA712454830300  2020-01-28T05:29:58.000Z  114.081983  22.329350   \n",
       "29541  FA712454830300  2020-01-28T05:30:28.000Z  114.082833  22.327083   \n",
       "29544  FA712454830300  2020-01-28T05:31:28.000Z  114.084383  22.323150   \n",
       "...               ...                       ...         ...        ...   \n",
       "32945  FA712454830300  2020-02-23T07:41:08.000Z   31.126853 -29.817860   \n",
       "32946  FA712454830300  2020-02-23T07:43:08.000Z   31.125547 -29.818770   \n",
       "32947  FA712454830300  2020-02-23T07:46:08.000Z   31.119920 -29.818930   \n",
       "32948  FA712454830300  2020-02-23T07:47:08.000Z   31.118000 -29.818530   \n",
       "32949  FA712454830300  2020-02-23T08:16:08.000Z   31.069547 -29.854480   \n",
       "\n",
       "      carrierName   vesselMMSI           onboardDate                   ETA  \\\n",
       "29536      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "29537      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "29538      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "29541      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "29544      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "...           ...          ...                   ...                   ...   \n",
       "32945      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "32946      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "32947      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "32948      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "32949      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/03  07:14:20   \n",
       "\n",
       "                  creatDate  \n",
       "29536  2020/07/16  17:38:57  \n",
       "29537  2020/07/16  17:38:57  \n",
       "29538  2020/07/16  17:38:57  \n",
       "29541  2020/07/16  17:38:57  \n",
       "29544  2020/07/16  17:38:57  \n",
       "...                     ...  \n",
       "32945  2020/07/16  17:38:57  \n",
       "32946  2020/07/16  17:38:57  \n",
       "32947  2020/07/16  17:38:57  \n",
       "32948  2020/07/16  17:38:57  \n",
       "32949  2020/07/16  17:38:57  \n",
       "\n",
       "[735 rows x 9 columns]"
      ]
     },
     "execution_count": 208,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "submit[submit['loadingOrder'].isin(['FA712454830300'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "submit.to_csv('../submit/716subv2.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.save('../submit/716subv2.npy',answers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "huawei_copy",
   "language": "python",
   "name": "huawei_copy"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
